package br.unp.tasi.loja.repositorios.impl;

import br.unp.tasi.loja.entidades.Categoria;
import br.unp.tasi.loja.repositorios.RepositorioCategoria;

import java.util.List;

import javax.inject.Named;

import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

@Named("br.unp.tasi.loja.repositorios.RepositorioCategoria")
public class RepositorioCategoriaImpl extends RepositorioBasicolmpl implements RepositorioCategoria {

  /**
   * @see RepositorioCategoria
   */
  @Override
  public Categoria localizarPeloID(Long id) {
    return getEntityManager().find(Categoria.class, id);
  }

  /**
   * @see RepositorioCategoria
   */
  @Override
  public List<Categoria> localizarTodos() {
    return getEntityManager().createQuery("from Categoria p order by p.nome").getResultList();
  }

  /**
   * @see RepositorioCategoria
   */
  @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
  @Override
  public void apagarPeloID(Long id) {
    apagar(localizarPeloID(id));
  }
}
